PCIe SSD应用
============

在vivado工程里配置PCIe，内核驱动里也添加了SSD的驱动，本章学习如何PCIe接口的SSD。教程都是基于前面教程已经完成的Debian
8系统。

如下面图片展示，SSD硬盘需要一个PCIe转NVMe转接板。

.. image:: images/27_media/image1.png
   :width: 5.6121in
   :height: 3.39894in

查看PCI设备
-----------

1) 给开发板ETH1连接到路由器，能上互联网，因为要在线安装一些软件

2) 登录开发板系统，使用下面命令安装pci工具

+-----------------------------------------------------------------------+
| apt-get install pciutils                                              |
+-----------------------------------------------------------------------+

.. image:: images/27_media/image2.png


3) 运行下面命令查看pcie设备，可以看到有个“Non-Volatile memory
   controller: Samsung Electronics Co Ltd Device
   a804”设备，这个就是SSD硬盘。

+-----------------------------------------------------------------------+
| lspci                                                                 |
+-----------------------------------------------------------------------+

.. image:: images/27_media/image3.png


4) 运行下面命令,可以看到SSD没有格式化，大小232.9G

+-----------------------------------------------------------------------+
| lsblk                                                                 |
+-----------------------------------------------------------------------+

.. image:: images/27_media/image4.png


格式化SSD
---------

1) 使用下面命令格式化SSD

+-----------------------------------------------------------------------+
| fdisk /dev/nvme0n1                                                    |
+-----------------------------------------------------------------------+

.. image:: images/27_media/image5.png


2) 输入n回车，创建新分区，输入p回车，然后再输入1回车，创建第一分区，然后按回车保持默认分区大小，最好输入w输入数据到磁盘

.. image:: images/27_media/image6.png


3) 使用下面命令创建文件系统格式化分区

+-----------------------------------------------------------------------+
| mkfs -t ext4 /dev/nvme0n1p1                                           |
+-----------------------------------------------------------------------+

.. image:: images/27_media/image7.png


4) 创建一个文件夹，然后挂载SSD分区

+-----------------------------------------------------------------------+
| mkdir /media/nvme                                                     |
|                                                                       |
| mount /dev/nvme0n1p1 /media/nvme                                      |
+-----------------------------------------------------------------------+

.. image:: images/27_media/image8.png


5) 建立一个文件夹测试一下

+-----------------------------------------------------------------------+
| cd /media/nvme                                                        |
|                                                                       |
| mkdir test                                                            |
|                                                                       |
| sync                                                                  |
+-----------------------------------------------------------------------+

.. image:: images/27_media/image9.png


SSD测速
-------

1) 写入速度测试，写入2.1GB数据，速度139MB/S

+-----------------------------------------------------------------------+
| dd if=/dev/zero of=/dev/nvme0n1p1 bs=2M count=1000                    |
+-----------------------------------------------------------------------+

.. image:: images/27_media/image10.png


2) 读取速度测试，读取2.1G，速度142MB/S

+-----------------------------------------------------------------------+
| dd if=/dev/nvme0n1p1 of=/dev/null bs=2M count=1000                    |
+-----------------------------------------------------------------------+

.. image:: images/27_media/image11.png

